Dialog

Dialog is a domain-specific language for creating works of interactive fiction. It is heavily inspired by Inform 7 (Graham Nelson et al. 2006) and Prolog (Alain Colmerauer et al. 1972).

An optimizing compiler, dialogc, translates high-level Dialog code into Z-code, a platform-independent runtime format originally created by Infocom in 1979.

Since Dialog version 0d/01 there's an interactive debugger, and since version 0g/01 there's a separate backend for the Å-machine story format.

The main discussion is happening at the intfiction.org forum, in the Dialog category.

Manual

The Dialog Manual will tell you everything about the latest version.

Brief notes for each new release appear in this forum thread.

Download

The release archive includes:

  • Full source code for the Dialog compiler.
  • Pre-built executable files for Linux (i386 and x86_64) and Windows.
  • The latest version of the Dialog standard library, and the standard debugging extension.
  • A copy of the manual.

The compiler is distributed under a 2-clause BSD license.

IFID Generator

For reasons outlined in the Treaty of Babel, the Dialog compiler may bug you about declaring a story-specific IFID. To generate the required declaration, simply click the button below.

Notable works

This is what Cloak of Darkness looks like in Dialog.

My IFComp 2018 game Tethered is the first published Dialog game.

Posted Thursday 22-Nov-2018 21:18

Discuss this page

Disclaimer: I am not responsible for what people (other than myself) write in the forums. Please report any abuse, such as insults, slander, spam and illegal material, and I will take appropriate actions. Don't feed the trolls.

Jag tar inget ansvar för det som skrivs i forumet, förutom mina egna inlägg. Vänligen rapportera alla inlägg som bryter mot reglerna, så ska jag se vad jag kan göra. Som regelbrott räknas till exempel förolämpningar, förtal, spam och olagligt material. Mata inte trålarna.

Anonymous
Tue 11-Dec-2018 17:44
if I have an object in a closed transparent container how do I override the default 'you can't reach obj' take fail message?

(instead of [take *]) doesn't seem to work in this case (scope?)

55 more comments hidden. Click to show all.

Anonymous
Wed 3-Sep-2025 15:41
Can't compile on Windows (in MSYS) because this uses termios.h and ioctl.h. Definitely not a good decision.
Anonymous
Sat 20-Dec-2025 17:31
Can't compile on Windows (in MSYS) because this uses termios.h and ioctl.h. Definitely not a good decision.

That's okay: you can make better decisions next time.
Draconis
Daniel Stelzer
Mon 27-Apr-2026 17:27
Dialog development came to a standstill several years ago. Is it now a dead language?

The community is now maintaining a fork at <https://github.com/Dialog-IF/dialog> that receives periodic updates! (With Linus's blessing, though not his involvement.)
Draconis
Daniel Stelzer
Mon 27-Apr-2026 17:29
Can't compile on Windows (in MSYS) because this uses termios.h and ioctl.h. Definitely not a good decision.

Termios.h and ioctl.h are specifically for the terminal version of the debugger; the Glk version was provided for Windows to avoid using those libraries.

But as of 1b/01, the community fork now supports the terminal version on Windows as well. I haven't tried building it on MSYS, but it uses windows.h instead of those libraries, so I believe it should all work.